import request from '@/utils/request'
import { UserRole, UserRoleList } from './type';
import { Response } from '@/api/type';


enum API {
  // 添加角色
  ADD_ROLE_URL = '/admin/acl/role/save',
  // 查询角色列表
  ROLE_LIST_URL = '/admin/acl/role/list',
  // 删除角色
  DELETE_ROLE_URL = '/admin/acl/role/remove',
  // 根据id获取角色
  GET_ROLE_BY_ID_URL = '/admin/acl/role/getRoleById',
  // 更新角色
  UPDATE_ROLE_URL = '/admin/acl/role/update',
  // 分配权限
  ASSIGN_PERMISSION_URL = '/admin/acl/permission/toAssign',
  // 获取用户角色列表和全部角色列表
  GET_USER_ROLE_LIST_URL = '/admin/acl/user/toAssign',
  // 分配角色权限
  ASSIGN_ROLE_URL = '/admin/acl/permission/doAssign',
  // 获取角色权限列表
  GET_ROLE_PERMISSION_URL = '/admin/acl/permission/toAssign',
  // 获取全部菜单列表
  GET_ALL_PERMISSION_URL = '/admin/acl/permission/tree',
  // 获取角色权限列表
  GET_ROLE_INFO_URL = '/admin/acl/role/getRoleInfo',
  // 获取角色权限列表
  GET_ROLE_PERMISSION_LIST_URL = '/admin/acl/role/getRolePermissionList',

}

//  添加角色
export const reqAddRole = (role: UserRole) => request.post<any, Response<void>>(API.ADD_ROLE_URL, role);

//  获取角色列表
export const reqRoleList = (page: number, limit: number, roleName: string | null) => request.get<any, Response<UserRoleList>>(API.ROLE_LIST_URL + `/${page}/${limit}`, { data: { roleName } });

//  删除角色
export const reqRemoveRoleByIds = (ids: number[]) => request.post<any, Response<void>>(API.DELETE_ROLE_URL, ids);

//  根据id获取角色
export const reqGetRoleById = (id: number) => request.get<any, Response<UserRole>>(API.GET_ROLE_BY_ID_URL + `/${id}`);

//  更新角色
export const reqUpdateRole = (role: UserRole) => request.put<any, Response<void>>(API.UPDATE_ROLE_URL, role);

//  分配权限
export const reqAssignPermission = (permissionIds: number[], roleId: number) => request.post<any, Response<void>>(API.ASSIGN_PERMISSION_URL, {
  data: {
    permissionIds,
    roleId
  }
});






